encyklopedia.space

c shell manual

C shell (oznaczany skrótem csh) – powłoka systemowa inspirowana językiem C, opracowana w początkach 1979 roku przez Billa Joya w University of Kansas. Jest jedną z najpopularniejszych alternatyw Bourne shell i była szeroko stosowana w systemach BSD oraz w początkowych wersjach Unix.

Historia

Powłoka C shell powstała jako reakcja na potrzebę bardziej przyjaznego języka skryptowego niż tradycyjny sh. Pierwsza wersja została udostępniona w 1979 roku i wkrótce stała się domyślną powłoką w systemach BSD. W 1990 roku wydano csh w wersji 5.6 w ramach 4.3BSD, wprowadzając takie elementy jak historię poleceń i aliasy.

Podstawowa składnia

Składnia C shell przypomina język C, co odróżnia ją od Bourne shell. Niektóre kluczowe elementy:

  • set variable = value – definiowanie zmiennych
  • if (warunek) then … else … endif – struktura warunkowa
  • foreach var (lista) … end – pętla iteracyjna
  • switch (wyrażenie) … case … default … endsw – selektor wielokrotnego wyboru

Zmienne środowiskowe i aliasy

W C shell zmienne środowiskowe definiuje się przy pomocy setenv:

setenv PATH /usr/local/bin:$PATH

Aliasowanie poleceń odbywa się za pomocą alias:

alias ll 'ls -lF'

Historia poleceń

Jedną z najważniejszych funkcji C shell jest wbudowany mechanizm historii poleceń. Dzięki temu użytkownik może przeglądać i edytować poprzednie komendy przy pomocy klawiszy strzałek lub polecenia history. Historia jest przechowywana w pliku ~/.history (lub ~/.csh_history w niektórych implementacjach).

Skrypty C shell

Plik skryptowy C shell rozpoczyna się od lini #!/bin/csh (lub #!/bin/tcsh w wersji rozszerzonej tcsh). Przykładowy skrypt, który wyświetla listę plików i zapisuje ją do pliku:

#!/bin/csh
set dir = $HOME
echo "Zawartość katalogu $dir:"
ls -l $dir > katalog.txt
echo "Zapisano do katalog.txt"

Porównanie z innymi powłokami

Cecha csh sh ksh bash
Składnia podobna do C Tak Nie Częściowo Częściowo
Historia poleceń Wbudowana Brak (do wersji 4) Opcjonalna Wbudowana
Aliasy Tak Nie Tak Tak
Obsługa tabulacji (tab‑completion) W tcsh – tak Nie Nie Tak

Implementacje i dostępność

Podstawowa wersja csh jest dostępna w większości dystrybucji Linux oraz w systemach macOS (jako część pakietu csh). Rozszerzona wersja tcsh oferuje dodatkowe funkcje, takie jak podpowiedzi i bardziej rozbudowaną historię.

Przykładowe zastosowania

  • Tworzenie prostych skryptów instalacyjnych w systemach BSD.
  • Interaktywna praca w terminalu na starszych platformach Unix.
  • Użycie jako powłoka domyślna w niektórych wersjach AIX.

Ograniczenia

Choć C shell wprowadził wiele użytecznych udogodnień, ma też pewne wady:

  • Problemy z obsługą zmiennych tablicowych, co może prowadzić do nieoczekiwanych rezultatów.
  • Brak pełnej zgodności z POSIX, co utrudnia przenoszenie skryptów między różnymi powłokami.
  • W niektórych wersjach trudna diagnostyka błędów w skryptach.

Bibliografia i dalsza lektura

Więcej informacji można znaleźć w następujących pozycjach:

Artykuł został opracowany na podstawie dostępnych źródeł do 2020 roku i jest częścią Encyklopedii Informatyki.